相关疑难解决方法(0)

MsBuild条件评估属性包含

尝试创建用于文件类型为的目标的项组 - Filename.CSS.ASPX

<Target Name="Test" AfterTargets="Build">
    <Message Text="Project $(ProjectName) Test PostBuild" Importance="high" />
    <Message Text="%(Content.FullPath)" Condition="%(Extension) == '.aspx' AND %(Filename.Contains(css))" Importance="high" />
</Target>
Run Code Online (Sandbox Code Playgroud)

关于编译;

Error   1   Expected "%(Filename.Contains(css))" to evaluate to a boolean instead of "%(Filename.Contains(css))", in condition "%(Extension) == '.aspx' AND %   (Filename.Contains(css))".  C:\Projects\TestProj\TestProj\TestProj.csproj   58  38  TestProj
Run Code Online (Sandbox Code Playgroud)

有关扩大评估属性的建议吗?

msbuild

17
推荐指数
2
解决办法
1万
查看次数

msbuild数组迭代

<ItemGroup>
    <!-- Unit Test Projects-->
    <MyGroup Include="Hello.xml" />
    <MyGroup Include="GoodBye.xml" />     
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

如何创建迭代此列表并执行某项操作的任务?

<XmlPeek XmlInputPath="%(MyGroup.Identity)"
         Query="/results">
    <Output TaskParameter="Result"
            ItemName="myResult" />
</XmlPeek>
Run Code Online (Sandbox Code Playgroud)

如果myresult里面有某个文本,我想发一条错误信息.然而,对于我的生活,我无法弄清楚如何迭代Msbuild中的数组...任何人都知道如何实现这一目标?

msbuild

16
推荐指数
2
解决办法
2万
查看次数

如何为新的SDK csproj文件的resx文件添加glob

如果我从VS2017将新的resx文件添加到我的新dotnetstandard 2.0 SDK项目中的properties文件夹中,

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <EmbeddedResource Remove="Properties\foo.resx" />
  </ItemGroup>

  <ItemGroup>
    <Compile Update="Properties\MyWords.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>MyWords.resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Properties\MyWords.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>MyWords.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>


</Project>
Run Code Online (Sandbox Code Playgroud)

但是,我更希望以与处理普通CS文件相同的方式进行处理。项目为空,并且搜索文件系统。什么是达到上述目的的笨拙方法,所以当我添加新文件时,它们不会以显式声明的形式结束。

我的第一次尝试是

  <ItemGroup>
    <Compile Update="Properties\**\*.designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Properties\%(Filename).resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Properties\**\*.resx">
      <Generator>ResXFileCodeGenerator</Generator>

    </EmbeddedResource>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

但这行不通,因为

Properties\%(Filename).resx
Run Code Online (Sandbox Code Playgroud)

扩展到

Properties\Foo.designer.resx
Run Code Online (Sandbox Code Playgroud)

代替

Properties\Foo.resx
Run Code Online (Sandbox Code Playgroud)

.net msbuild

6
推荐指数
2
解决办法
827
查看次数

标签 统计

msbuild ×3

.net ×1