Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb1e105d

Browse files
committed
Fix implementation of Microsoft.FSharp.targets for projects containing resources
The Microsoft.FSharp.targets project file didn't gel with theMicrosoft.Common.targets when it comes to projects with resources. Justuse the same technique as Microsoft.CSharp.targets.Added one test project for an embedded resource and also checked itwhen compiling the MonoDevelop addin using xbuild.
1 parent707badd commitb1e105d

File tree

9 files changed

+153
-30
lines changed

9 files changed

+153
-30
lines changed

‎src/fsharp/FSharp.Build/Microsoft.FSharp.targets‎

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ Copyright (C) Microsoft Corporation. All rights reserved.
1717

1818
<Projectxmlns="http://schemas.microsoft.com/developer/msbuild/2003">
1919

20-
<UsingTaskTaskName="Fsc"AssemblyFile="FSharp.Build{BuildSuffix}.dll"/>
21-
<UsingTaskTaskName="CreateFSharpManifestResourceName"AssemblyFile="FSharp.Build{BuildSuffix}.dll"/>
20+
<UsingTaskTaskName="Fsc"AssemblyFile="FSharp.Build.dll"/>
21+
<UsingTaskTaskName="CreateFSharpManifestResourceName"AssemblyFile="FSharp.Build.dll"/>
2222

2323

2424
<PropertyGroup>
2525
<!-- FSharpTargetsDir is the directory where the targets file lives-->
26-
<FSharpTargetsDirCondition="'$(FSharpTargetsDir)'==''">{FSharpTargetsDir}</FSharpTargetsDir>
26+
<FSharpTargetsDirCondition="'$(FSharpTargetsDir)'==''">unused</FSharpTargetsDir>
2727
<!-- FSharpTargetsFullPath is the full path (dir + filename) of the targets file-->
28-
<FSharpTargetsFullPathCondition="'$(FSharpTargetsDir)'!=''">$(FSharpTargetsDir)\Microsoft.FSharp{BuildSuffix}.targets</FSharpTargetsFullPath>
28+
<FSharpTargetsFullPathCondition="'$(FSharpTargetsDir)'!=''">$(FSharpTargetsDir)\Microsoft.FSharp.targets</FSharpTargetsFullPath>
2929
<MSBuildAllProjects>$(MSBuildAllProjects);$(FSharpTargetsFullPath)</MSBuildAllProjects>
3030
<DefaultLanguageSourceExtension>.fs</DefaultLanguageSourceExtension>
3131
<Language>F#</Language>
@@ -58,42 +58,37 @@ Copyright (C) Microsoft Corporation. All rights reserved.
5858
<PropertyGroup>
5959
<CreateManifestResourceNamesDependsOn></CreateManifestResourceNamesDependsOn>
6060
</PropertyGroup>
61-
<Target
62-
Name="CreateManifestResourceNames"
63-
Condition="'@(EmbeddedResource)' != ''"
64-
DependsOnTargets="$(CreateManifestResourceNamesDependsOn)"
65-
>
6661

67-
<ItemGroup>
68-
<_TemporaryRemove="@(_Temporary)" />
69-
</ItemGroup>
70-
71-
<!-- Create manifest names for culture and non-culture Resx files, and for non-culture Non-Resx resources-->
72-
<CreateFSharpManifestResourceName
73-
ResourceFiles="@(EmbeddedResource)"
74-
RootNamespace="$(RootNamespace)"
75-
Condition="'%(EmbeddedResource.ManifestResourceName)' == '' and ('%(EmbeddedResource.WithCulture)' == 'false' or '%(EmbeddedResource.Type)' == 'Resx')">
76-
77-
<OutputTaskParameter="ResourceFilesWithManifestResourceNames"ItemName="_Temporary" />
62+
<TargetName="CreateManifestResourceNames"
63+
Condition="'@(EmbeddedResource)' != ''"
64+
DependsOnTargets="$(CreateManifestResourceNamesDependsOn)">
65+
<CreateFSharpManifestResourceNameCondition="'@(ResxWithNoCulture)' != ''"
66+
ResourceFiles="@(ResxWithNoCulture)"RootNamespace="$(RootNamespace)">
67+
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestResourceWithNoCultureName" />
68+
</CreateFSharpManifestResourceName>
7869

79-
</CreateFSharpManifestResourceName>
70+
<CreateFSharpManifestResourceNameCondition="'@(NonResxWithNoCulture)' != ''"
71+
ResourceFiles="@(NonResxWithNoCulture)"RootNamespace="$(RootNamespace)">
72+
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestNonResxWithNoCulture" />
73+
</CreateFSharpManifestResourceName>
8074

81-
<!-- Create manifest names for all culture non-resx resources-->
82-
<CreateFSharpManifestResourceName
83-
ResourceFiles="@(EmbeddedResource)"
84-
RootNamespace="$(RootNamespace)"
85-
PrependCultureAsDirectory="false"
86-
Condition="'%(EmbeddedResource.ManifestResourceName)' == '' and '%(EmbeddedResource.WithCulture)' == 'true' and '%(EmbeddedResource.Type)' == 'Non-Resx'">
75+
<CreateFSharpManifestResourceNameCondition="'@(ResxWithCulture)' != ''"
76+
ResourceFiles="@(ResxWithCulture)"RootNamespace="$(RootNamespace)">
77+
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestResourceWithCultureName" />
78+
</CreateFSharpManifestResourceName>
8779

88-
<OutputTaskParameter="ResourceFilesWithManifestResourceNames"ItemName="_Temporary" />
80+
<CreateFSharpManifestResourceNameCondition="'@(NonResxWithCulture)' != ''"
81+
ResourceFiles="@(NonResxWithCulture)"RootNamespace="$(RootNamespace)">
82+
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestNonResxWithCulture" />
83+
</CreateFSharpManifestResourceName>
8984

90-
</CreateFSharpManifestResourceName>
9185

9286
<ItemGroup>
9387
<EmbeddedResourceRemove="@(EmbeddedResource)"Condition="'%(EmbeddedResource.ManifestResourceName)' == ''"/>
9488
<EmbeddedResourceInclude="@(_Temporary)" />
9589
<_TemporaryRemove="@(_Temporary)" />
9690
</ItemGroup>
91+
9792
</Target>
9893

9994
<ItemGroup>
@@ -167,7 +162,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
167162
Platform="$(PlatformTarget)"
168163
References="@(ReferencePath)"
169164
ReferencePath="$(ReferencePath)"
170-
Resources="@(_CoreCompileResourceInputs);@(CompiledLicenseFile);@(AdditionalEmbeddedResource)"
165+
Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile);@(AdditionalEmbeddedResource)"
171166
Sources="@(CompileBefore);@(Compile);@(CompileAfter)"
172167
Tailcalls="$(Tailcalls)"
173168
TargetType="$(OutputType)"
@@ -193,3 +188,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
193188
<ImportProject="$(MSBuildBinPath)\Microsoft.Common.targets"/>
194189

195190
</Project>
191+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
Tests a project file with a resource.
3+
4+
You should see
5+
--resource:obj/Debug/Sample_VS2012_FSharp_ConsoleApp_net45.resource.txt
6+
7+
on the command line when you run xbuild on the .fsproj file
8+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2012
4+
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") ="Sample_VS2012_FSharp_ConsoleApp_net45","Sample_VS2012_FSharp_ConsoleApp_net45\Sample_VS2012_FSharp_ConsoleApp_net45.fsproj","{B5B8C6FD-D77D-46E6-A9C5-5D78200668CC}"
5+
EndProject
6+
Global
7+
GlobalSection(SolutionConfigurationPlatforms) =preSolution
8+
Debug|Any CPU=Debug|Any CPU
9+
Release|Any CPU=Release|Any CPU
10+
EndGlobalSection
11+
GlobalSection(ProjectConfigurationPlatforms) =postSolution
12+
{B5B8C6FD-D77D-46E6-A9C5-5D78200668CC}.Debug|Any CPU.ActiveCfg=Debug|Any CPU
13+
{B5B8C6FD-D77D-46E6-A9C5-5D78200668CC}.Debug|Any CPU.Build.0=Debug|Any CPU
14+
{B5B8C6FD-D77D-46E6-A9C5-5D78200668CC}.Release|Any CPU.ActiveCfg=Release|Any CPU
15+
{B5B8C6FD-D77D-46E6-A9C5-5D78200668CC}.Release|Any CPU.Build.0=Release|Any CPU
16+
EndGlobalSection
17+
GlobalSection(SolutionProperties) =preSolution
18+
HideSolutionNode =FALSE
19+
EndGlobalSection
20+
EndGlobal
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.5" />
5+
</startup>
6+
<runtime>
7+
<assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1">
8+
<dependentAssembly>
9+
<assemblyIdentityname="FSharp.Core"publicKeyToken="b03f5f7f11d50a3a"culture="neutral"/>
10+
<bindingRedirectoldVersion="4.0.0.0"newVersion="4.3.0.0"/>
11+
<bindingRedirectoldVersion="2.3.5.0"newVersion="4.3.0.0"/>
12+
<bindingRedirectoldVersion="2.0.0.0"newVersion="4.3.0.0"/>
13+
14+
</dependentAssembly>
15+
</assemblyBinding>
16+
</runtime>
17+
</configuration>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// This is a sample F# app created in Visual Studio 2012, targeting .NET 4.5
2+
3+
// At time of submission it won't build by default because MD doesn't support .NET 4.5 as yet
4+
5+
[<EntryPoint>]
6+
letmain argv=
7+
printfn"%A" argv
8+
0// return an integer exit code
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<ProjectToolsVersion="4.0"DefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ImportProject="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+
<PropertyGroup>
5+
<ConfigurationCondition=" '$(Configuration)' == ''">Debug</Configuration>
6+
<PlatformCondition=" '$(Platform)' == ''">AnyCPU</Platform>
7+
<SchemaVersion>2.0</SchemaVersion>
8+
<ProjectGuid>b5b8c6fd-d77d-46e6-a9c5-5d78200668cc</ProjectGuid>
9+
<OutputType>Exe</OutputType>
10+
<RootNamespace>Sample_VS2012_FSharp_ConsoleApp_net45</RootNamespace>
11+
<AssemblyName>Sample_VS2012_FSharp_ConsoleApp_net45</AssemblyName>
12+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
13+
<Name>Sample_VS2012_FSharp_ConsoleApp_net45</Name>
14+
<ProductVersion>10.0.0</ProductVersion>
15+
<UsePartialTypes>False</UsePartialTypes>
16+
</PropertyGroup>
17+
<PropertyGroupCondition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
18+
<DebugSymbols>True</DebugSymbols>
19+
<DebugType>full</DebugType>
20+
<Optimize>False</Optimize>
21+
<Tailcalls>False</Tailcalls>
22+
<OutputPath>bin\Debug\</OutputPath>
23+
<DefineConstants>DEBUG;TRACE</DefineConstants>
24+
<WarningLevel>3</WarningLevel>
25+
<PlatformTarget>AnyCPU</PlatformTarget>
26+
<DocumentationFile>bin\Debug\Sample_VS2012_FSharp_ConsoleApp_net45.XML</DocumentationFile>
27+
<Prefer32Bit>true</Prefer32Bit>
28+
</PropertyGroup>
29+
<PropertyGroupCondition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
30+
<DebugType>pdbonly</DebugType>
31+
<Optimize>True</Optimize>
32+
<Tailcalls>True</Tailcalls>
33+
<OutputPath>bin\Release\</OutputPath>
34+
<DefineConstants>TRACE</DefineConstants>
35+
<WarningLevel>3</WarningLevel>
36+
<PlatformTarget>AnyCPU</PlatformTarget>
37+
<DocumentationFile>bin\Release\Sample_VS2012_FSharp_ConsoleApp_net45.XML</DocumentationFile>
38+
<Prefer32Bit>true</Prefer32Bit>
39+
<DebugSymbols>False</DebugSymbols>
40+
</PropertyGroup>
41+
<ItemGroup>
42+
<ReferenceInclude="mscorlib" />
43+
<ReferenceInclude="System" />
44+
<ReferenceInclude="System.Core" />
45+
<ReferenceInclude="System.Numerics" />
46+
<ReferenceInclude="FSharp.Core" />
47+
</ItemGroup>
48+
<ItemGroup>
49+
<CompileInclude="Program.fs" />
50+
<NoneInclude="App.config" />
51+
</ItemGroup>
52+
<PropertyGroup>
53+
<MinimumVisualStudioVersionCondition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
54+
</PropertyGroup>
55+
<ImportProject="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets"Condition=" Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')" />
56+
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
57+
Other similar extension points exist, see Microsoft.Common.targets.
58+
<Target Name="BeforeBuild">
59+
</Target>
60+
<Target Name="AfterBuild">
61+
</Target>
62+
-->
63+
<ItemGroup>
64+
<EmbeddedResourceInclude="resource.txt" />
65+
</ItemGroup>
66+
<ItemGroup>
67+
<ContentInclude="content.txt">
68+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
69+
</Content>
70+
</ItemGroup>
71+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hello world content
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hello world
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hello world

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp