Bug 27665 - [XVS.iOS 3.9] XIB files and BundleResources within iOS Class Libraries where assembly name does not match project name cause "Cannot copy ... as the source file doesn't exist"
Summary: [XVS.iOS 3.9] XIB files and BundleResources within iOS Class Libraries where ...
Status: RESOLVED FIXED
Alias: None
Product: Visual Studio Extensions
Classification: Xamarin
Component: iOS ()
Version: 3.9
Hardware: PC Windows
: High major
Target Milestone: 3.9.3
Assignee: Brendan Zagaeski (Xamarin Team, assistant)
URL:
Depends on:
Blocks:
 
Reported: 2015-03-04 16:04 UTC by Brendan Zagaeski (Xamarin Team, assistant)
Modified: 2015-09-28 12:47 UTC (History)
7 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Test case (20.92 KB, application/zip)
2015-03-04 16:04 UTC, Brendan Zagaeski (Xamarin Team, assistant)
Details
Log files (70.57 KB, application/zip)
2015-03-04 16:06 UTC, Brendan Zagaeski (Xamarin Team, assistant)
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description Brendan Zagaeski (Xamarin Team, assistant) 2015-03-04 16:04:08 UTC
Created attachment 10159 [details]
Test case

[XVS.iOS 3.9] XIB files and BundleResources within iOS Class Libraries where assembly name does not match project name cause "Cannot copy ... as the source file doesn't exist"


Regression status: regression between XVS 3.8.150 (10cfd17) + XI 8.4.0.43 (840a925) and XVS 3.9.344 + XI 8.6.2.26


This is a follow-up to bug 26606 for the case where the _assembly name_ of the class library does not match the _project name_ of the class library.



## Steps to reproduce

1. Open the attached test case in Visual Studio. (This is essentially the same test case as for bug 26606, but the assembly name for the "ClassicClassLibrary1" project has been changed.)

2. Ensure Visual Studio is paired with the build host.

3. Build the "ClassicSingleViewUniversal1" app in the "Release|iPhone"
configuration.


(Note: due to bug 26484 it is mandatory to build the solution from within
Visual Studio rather than on the command line.)



## Results

The build process looks for the compiled `.nib` file from the "ClassicClassLibrary1" project in the incorrect location on the build host. The folder location used by the Copy command is "ClassicClassLibrary1Foo" (the assembly name), but the actual folder on the build host is "ClassicClassLibrary1" (the project name).


### Errors from the "Error List" window

For the XIB file:

> Cannot copy /Volumes/Cases/macuser/Library/Caches/Xamarin/mtbs/builds/
> ClassicClassLibrary1Foo/ac2b1df117a4a45438eed4d5a8f39bf0/obj/Release/ibtool/
> IPhoneViewController1.nib
>
> to
>
> /Volumes/Cases/macuser/Library/Caches/Xamarin/mtbs/builds/
> ClassicSingleViewUniversal1/8532cf40678eb358b13b01ce2a9f1ed6/bin/iPhone/Release/
> ClassicSingleViewUniversal1.app/IPhoneViewController1.nib,
> 
> as the source file doesn't exist.


For BundleResource `.png` file:

> Cannot copy
> /Volumes/Cases/macuser/Library/Caches/Xamarin/mtbs/builds/
> ClassicClassLibrary1Foo/ac2b1df117a4a45438eed4d5a8f39bf0/
> Default-568h@2x.png
>
> to
>
> /Volumes/Cases/macuser/Library/Caches/Xamarin/mtbs/builds/
> ClassicSingleViewUniversal1/8532cf40678eb358b13b01ce2a9f1ed6/bin/iPhone/Release/
> ClassicSingleViewUniversal1.app/Default-568h@2x.png,
>
> as the source file doesn't exist.


### The build host _does_ have a copy of the the `.nib` file and the `.png` file, but the folder name does not include "Foo"

> $ find ~/Library/Caches/Xamarin/mtbs/builds/ClassicClassLibrary1/ac2b1df117a4a45438eed4d5a8f39bf0 -name "*.nib" -or -name "*.png"
> /Users/macuser/Library/Caches/Xamarin/mtbs/builds/ClassicClassLibrary1/ac2b1df117a4a45438eed4d5a8f39bf0/Default-568h@2x.png
> /Users/macuser/Library/Caches/Xamarin/mtbs/builds/ClassicClassLibrary1/ac2b1df117a4a45438eed4d5a8f39bf0/obj/Release/ibtool/IPhoneViewController1.nib



## Partial workaround

Change "Project properties -> Application -> Assembly name" from "ClassicClassLibrary1Foo" to "ClassicClassLibrary1" for the "ClassicClassLibrary1" project. This stops the problem.



## Results on Xamarin Studio: success

The project builds and deploys successfully on Xamarin Studio 5.7.2 (build 7) on Mac.



## Version info

### Windows 8.1 64-bit, in VMWare Fusion 6.0.5 (2209127)
Microsoft Visual Studio Professional 2013
Version 12.0.30723.00 Update 3
Microsoft .NET Framework
Version 4.5.51641

Xamarin   3.9.344.0 (e23ab72)
Xamarin.Android   4.20.0.34 (49a04b966feb40dfdba49d57ba16249b66d606a6)
Xamarin.iOS   8.6.2.0 (862702c6b8aa14a373e25f83ac45918556af41a2)


### OS X 10.9.5, MacBook Air
Xamarin.iOS 8.6.2.26 (Business Edition)
Hash: 9905782
Build date: 2015-02-26 11:05:07-0500

Xcode 6.1.1 (6611), Build 6A2008a
Comment 1 Brendan Zagaeski (Xamarin Team, assistant) 2015-03-04 16:06:20 UTC
Created attachment 10160 [details]
Log files

This attachment includes the diagnostic build output, the logs from ~/Library/Logs/Xamarin/MonoTouchVS on the Mac build host, and the logs from %LOCALAPPDATA%\Xamarin\Log on Windows.