Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ms构建动态资源命名_C#_Visual Studio 2012_Msbuild_Csproj - Fatal编程技术网

C# ms构建动态资源命名

C# ms构建动态资源命名,c#,visual-studio-2012,msbuild,csproj,C#,Visual Studio 2012,Msbuild,Csproj,我想在编译时用特殊的命名将一些文件添加到嵌入式资源中。为此,我在.csproj <Target Name="BeforeBuild" > <ItemGroup> <EmbeddedResource Include="..\Bin\$(Configuration)\*.*"> </EmbeddedResource> </ItemGroup> </Target> 但它总是将设

我想在编译时用特殊的命名将一些文件添加到嵌入式资源中。为此,我在
.csproj

<Target Name="BeforeBuild" >
    <ItemGroup>
        <EmbeddedResource Include="..\Bin\$(Configuration)\*.*">
        </EmbeddedResource>
    </ItemGroup>
</Target>

但它总是将
设置为默认值。
我该怎么做

我找到了解决办法。此重命名工作:

<Target Name="BeforeBuild">
    <ItemGroup>
      <Frameworks Include="..\Bin\$(Configuration)\Frameworks\*.*" />
      <Steps Include="..\Bin\$(Configuration)\Steps\*.*" />
    </ItemGroup>
    <ItemGroup>
      <EmbeddedResource Include="@(Frameworks)">
        <LogicalName>Frameworks.%(Filename)%(Extension)</LogicalName>
      </EmbeddedResource>
      <EmbeddedResource Include="@(Steps)">
        <LogicalName>Steps.%(Filename)%(Extension)</LogicalName>
      </EmbeddedResource>
    </ItemGroup>
    <Message Text="EmbeddedResource - @(EmbeddedResource)" />
  </Target>

框架。%(文件名)%(扩展名)
步骤。%(文件名)%(扩展名)

您确定路径正确吗。你的项目在哪里?我想你不需要“……是的,我确定。这是一个特殊的“bin”文件夹,其中包含来自另一个项目的dll。如果只指定一个不带通配符的文件,该文件夹是否有效:
。\bin\$(配置)\SomeFile.ext
?是。对于许多文件,它也可以工作。但我找到了解决办法。