为什么msbuild尝试从错误的路径复制?

时间:2015-04-04 10:24:17

标签: msbuild windows-store-apps

我尝试使用MSBuild构建Windows应用商店应用。

C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild.exe /t:build /p:Configurat
ion=Release;Platform=x86 E:\MyApp.W8.csproj /logger:FileLogger,Microsoft.Build.Engine;logfile=E:/log/test.txt /p:OutputPath=E:/result

我收到了这个错误:

  

" E:\ MyApp.W8.csproj       " (构建目标)(1) - >       (CopyGeneratedXaml target) - >         C:\ Program Files(x86)\ MSBuild \ Microsoft \ WindowsXaml \ v12.0 \ 8.1 \ Microsoft.Wind       ows.UI.Xaml.Common.targets(476,9):错误MSB3021:无法复制文件" obj \ x86 \       发布\ E:\ MyApp.Shared \ App.xbf"到" E:\ result \ E:\ MyApp.Shared \ App.xbf"。给定路径的格式不是   支持的。 [E:\ MyApp.W8.csproj]

我不知道为什么MSBuild会尝试使用

obj\x86\Release\E:\MyApp.Shared\App.xbf
instead obj\x86\Release\App.xbf

或App.xbf的绝对路径。

1 个答案:

答案 0 :(得分:1)

根据this post,在您的.projitems文件中,您会找到以下代码:

private void setUpMapIfNeeded() {
    if (mMap == null) {
        mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        if (mMap != null) {
            setUpMap();
        }
    }
}

private void setUpMap() {
    mMap.setMyLocationEnabled(true);
    mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
            @Override
            public void onMyLocationChange(Location location) {
                LatLng l = new LatLng(location.getLatitude(), location.getLongitude());
                mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(l, mMap.getCameraPosition().zoom));
            }
        });
}

将其替换为:

<ApplicationDefinition Include="$(MSBuildThisFileDirectory)App.xaml">
<SubType>Designer</SubType>
</ApplicationDefinition>