Re: [WiX-users] Adding reference to WiX project doesn't lead to copy referenced project's files

2010-05-24 Thread Neil Sleightholm
That is correct, the is an open bug report for this:
http://sourceforge.net/tracker/?func=detail&aid=2998492&group_id=105970&;
atid=642714.

Neil 

-Original Message-
From: Ilya [mailto:iser...@shtrih-m.ru] 
Sent: 24 May 2010 08:43
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Adding reference to WiX project doesn't lead to
copy referenced project's files

I've just checked Heat in WiX 3.5. It also ignores Copy Local property 
of referenced assemblies.
My conclusion: at the moment there is no way to harvest referenced 
assemblies using heat.exe with the "project" mode.

Ilya Serbis

--

___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Adding reference to WiX project doesn't lead to copy referenced project's files

2010-05-24 Thread Ilya
I've just checked Heat in WiX 3.5. It also ignores Copy Local property 
of referenced assemblies.
My conclusion: at the moment there is no way to harvest referenced 
assemblies using heat.exe with the "project" mode.

Ilya Serbis


On 17.05.2010 14:57, Илья Сербис wrote:
> Hi Matt,
>
> I've doublechecked Binares and Content output groups but without success. I 
> run heat from command line:
> "%WIX%\bin\heat" project "..\..\src\Configurator.csproj" -pog:Binaries 
> -pog:Content -out heat.wxs
> The only reference I have in outputs is compiled assembly. Heat completely 
> ignores other files in project's output directory (referenced assemblies - 
> they are there, I've checked it. I've also checked that the Copy Local 
> property for every of them is set to True).
> May be the problem is because I use WiX 3.0?
> Or I miss some special command line parameter?
>
>
>> Hi Ilya,
>>  
>
>> In your source project, make sure you have the build action set
>> appropriately for each file.  It should be Compile for .cs files
>> that make their way into assemblies, Content for files you want
>> harvested by heat, and None for files you want heat to ignore.  Then
>> when setting your references, or using heat from the commandline,
>> specify project output groups Binares and Content.   I know this
>> works, because I am using it for a web project, which has .aspx and
>> .config files as content, and they get harvested just fine.
>>  
>
>
>> Matt Johnson MCPD, MCTS, MCSD, MCDBA
>> Director of Application Development
>> Time America, Inc.
>> ma...@timeamerica.com | www.timeamerica.com
>>  
>
>> -Original Message-----
>> From: Илья Сербис [mailto:iser...@shtrih-m.ru]
>> Sent: Friday, May 14, 2010 6:15 AM
>> To: General discussion for Windows Installer XML toolset.
>> Subject: Re: [WiX-users] Adding reference to WiX project doesn't
>> lead to copy referenced project's files
>>  
>
>
>> Matt,
>>  
>
>> First of all thanks for your response.
>>  
>
>> msbuild's HarvestProject task isn't appropriate for my goals for
>> some reasons. The main is that heat doesn't create list of all files
>> from project's output directory but instead add reference only to
>> the project assembly. This is almost useless because assembly
>> usually need some files for its work (referenced assemblies,
>> configuration files) and has some artifacts (like readme files).
>>  
>
>> Another issue I've faced with is that only files with specific
>> extensions (or with specific names) should be put into .msi. Other
>> files should be filtered out. Because heat has no options to control
>> this I have only two ways to achieve the goal. First - remove
>> unwanted files before the heat goes through the directory. Second -
>> remove unwanted Components from generated wxs file by applying xsl
>> transformation. I prefer the first solution (because del command is
>> much more simpler than xslt language).
>>  
>
>> So before building .msi file my pre-build process should execute steps like 
>> this:
>> 1.  Copy files from output directory of C# project to the temporary 
>> directory
>> 2.  Delete unwanted files from the directory
>> 3.  Run heat to generate list of files in this directory
>>  
>
>> My question was about step 1. It would be nice if Votive be able to
>> copy content of referenced project to its own output directory. This
>> would allow me not to write relative paths to output directories of
>> referenced projects manually. But everything looks like it's not possible.
>>  
>
>> Also note that I'm not be able to use Votive variables like
>> $(var.ProjectName.foo) at the heat command prompt. I have to provide
>> heat by the full path to the directory with files.
>>  
>
>> Ilya Serbis
>>  
>
>
>
>>> Hi,
>>>
>
>>> That is not entirely correct.  When you reference one project to
>>> another, msbuild doesn't copy anything.  It simply makes the
>>> reference project available to the target project. It is up to the
>>> target project itself to decide what it's going to do with that
>>> reference.  In the case of a c# project, it decides to copy files
>>> according to the "Copy Local" property of the reference, and the
>>> "Build Action" and &quo

Re: [WiX-users] Adding reference to WiX project doesn't lead to copy referenced project's files

2010-05-17 Thread Илья Сербис

Hi Matt,

I've doublechecked Binares and Content output groups but without success. I run 
heat from command line:
"%WIX%\bin\heat" project "..\..\src\Configurator.csproj" -pog:Binaries 
-pog:Content -out heat.wxs
The only reference I have in outputs is compiled assembly. Heat completely 
ignores other files in project's output directory (referenced assemblies - they 
are there, I've checked it. I've also checked that the Copy Local property for 
every of them is set to True).
May be the problem is because I use WiX 3.0?
Or I miss some special command line parameter?

> Hi Ilya,

> In your source project, make sure you have the build action set
> appropriately for each file.  It should be Compile for .cs files
> that make their way into assemblies, Content for files you want
> harvested by heat, and None for files you want heat to ignore.  Then
> when setting your references, or using heat from the commandline,
> specify project output groups Binares and Content.   I know this
> works, because I am using it for a web project, which has .aspx and
> .config files as content, and they get harvested just fine.


> Matt Johnson MCPD, MCTS, MCSD, MCDBA
> Director of Application Development
> Time America, Inc.
> ma...@timeamerica.com | www.timeamerica.com

> -Original Message-
> From: Илья Сербис [mailto:iser...@shtrih-m.ru] 
> Sent: Friday, May 14, 2010 6:15 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Adding reference to WiX project doesn't
> lead to copy referenced project's files


> Matt,

> First of all thanks for your response.

> msbuild's HarvestProject task isn't appropriate for my goals for
> some reasons. The main is that heat doesn't create list of all files
> from project's output directory but instead add reference only to
> the project assembly. This is almost useless because assembly
> usually need some files for its work (referenced assemblies,
> configuration files) and has some artifacts (like readme files).

> Another issue I've faced with is that only files with specific
> extensions (or with specific names) should be put into .msi. Other
> files should be filtered out. Because heat has no options to control
> this I have only two ways to achieve the goal. First - remove
> unwanted files before the heat goes through the directory. Second -
> remove unwanted Components from generated wxs file by applying xsl
> transformation. I prefer the first solution (because del command is
> much more simpler than xslt language).

> So before building .msi file my pre-build process should execute steps like 
> this:
> 1.  Copy files from output directory of C# project to the temporary 
> directory
> 2.  Delete unwanted files from the directory
> 3.  Run heat to generate list of files in this directory

> My question was about step 1. It would be nice if Votive be able to
> copy content of referenced project to its own output directory. This
> would allow me not to write relative paths to output directories of
> referenced projects manually. But everything looks like it's not possible.

> Also note that I'm not be able to use Votive variables like
> $(var.ProjectName.foo) at the heat command prompt. I have to provide
> heat by the full path to the directory with files.

> Ilya Serbis



>> Hi,

>> That is not entirely correct.  When you reference one project to
>> another, msbuild doesn't copy anything.  It simply makes the
>> reference project available to the target project. It is up to the
>> target project itself to decide what it's going to do with that
>> reference.  In the case of a c# project, it decides to copy files
>> according to the "Copy Local" property of the reference, and the
>> "Build Action" and "Copy to Output Directory" properties of each file.

>> Votive, (the Wix Visual Studio plugin), does other things with
>> project reference. First, it makes the project available through
>> variables such as $(var.ProjectName.Whatever) (see the wix docs on
>> "project references"). Second, if you are using Wix 3.5 with VS2010,
>> you get options for "Harvest" (true/false) and "ProjectOutputGroups" that go 
>> along with Harvest=True.

>> Those two harvesting properties will control how Heat builds .wxs
>> files from your project.  Those end up in the obj subdirectory, and
>> then passed in to Candle during the build process.

>> Whether files from your c# project make their way to your final
>> output directory in Wix depends on a whole lot of things. For
>> example, you may be using a compressed package where all y

Re: [WiX-users] Adding reference to WiX project doesn't lead to copy referenced project's files

2010-05-14 Thread Matt Johnson
Hi Ilya,

In your source project, make sure you have the build action set appropriately 
for each file.  It should be Compile for .cs files that make their way into 
assemblies, Content for files you want harvested by heat, and None for files 
you want heat to ignore.  Then when setting your references, or using heat from 
the commandline, specify project output groups Binares and Content.   I know 
this works, because I am using it for a web project, which has .aspx and 
.config files as content, and they get harvested just fine.


Matt Johnson MCPD, MCTS, MCSD, MCDBA
Director of Application Development
Time America, Inc.
ma...@timeamerica.com | www.timeamerica.com

-Original Message-
From: Илья Сербис [mailto:iser...@shtrih-m.ru] 
Sent: Friday, May 14, 2010 6:15 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Adding reference to WiX project doesn't lead to copy 
referenced project's files


Matt,

First of all thanks for your response.

msbuild's HarvestProject task isn't appropriate for my goals for some reasons. 
The main is that heat doesn't create list of all files from project's output 
directory but instead add reference only to the project assembly. This is 
almost useless because assembly usually need some files for its work 
(referenced assemblies, configuration files) and has some artifacts (like 
readme files).

Another issue I've faced with is that only files with specific extensions (or 
with specific names) should be put into .msi. Other files should be filtered 
out. Because heat has no options to control this I have only two ways to 
achieve the goal. First - remove unwanted files before the heat goes through 
the directory. Second - remove unwanted Components from generated wxs file by 
applying xsl transformation. I prefer the first solution (because del command 
is much more simpler than xslt language).

So before building .msi file my pre-build process should execute steps like 
this:
1.  Copy files from output directory of C# project to the temporary 
directory
2.  Delete unwanted files from the directory
3.  Run heat to generate list of files in this directory

My question was about step 1. It would be nice if Votive be able to copy 
content of referenced project to its own output directory. This would allow me 
not to write relative paths to output directories of referenced projects 
manually. But everything looks like it's not possible.

Also note that I'm not be able to use Votive variables like 
$(var.ProjectName.foo) at the heat command prompt. I have to provide heat by 
the full path to the directory with files.

Ilya Serbis



> Hi,

> That is not entirely correct.  When you reference one project to
> another, msbuild doesn't copy anything.  It simply makes the
> reference project available to the target project. It is up to the
> target project itself to decide what it's going to do with that
> reference.  In the case of a c# project, it decides to copy files
> according to the "Copy Local" property of the reference, and the
> "Build Action" and "Copy to Output Directory" properties of each file.

> Votive, (the Wix Visual Studio plugin), does other things with
> project reference. First, it makes the project available through
> variables such as $(var.ProjectName.Whatever) (see the wix docs on
> "project references"). Second, if you are using Wix 3.5 with VS2010,
> you get options for "Harvest" (true/false) and "ProjectOutputGroups" that go 
> along with Harvest=True.

> Those two harvesting properties will control how Heat builds .wxs
> files from your project.  Those end up in the obj subdirectory, and
> then passed in to Candle during the build process.

> Whether files from your c# project make their way to your final
> output directory in Wix depends on a whole lot of things. For
> example, you may be using a compressed package where all your files
> go inside cabinets and those get embedded in the msi. There may be
> different Media elements defined in your package, or you may be
> using those files in some other way inside your wix project.

> Hopefully you now understand why you don't get files in your output
> directory just from making the project reference.  That would go
> against all of the reasons that you build a wix project in the first place.


> Now - if what you really want to know is how to get files from your
> referenced c# package into your output directory without them being
> embedded in an msi, it's fairly simple:
> 1) Set Compressed="no" on your package
> 2) Reference your project and use the harvesting properties.

> The only downside to this is that ALL your harvested files will end
> up outside of the msi.  To work around that, you'll need
> Co

Re: [WiX-users] Adding reference to WiX project doesn't lead to copy referenced project's files

2010-05-14 Thread Илья Сербис
t; I know this is an ugly workaround.  I hope someone that works on
> Votive is listening.  This is a great example of why we need to be
> able to specify transforms as a property on the project reference.



> Matt Johnson MCPD, MCTS, MCSD, MCDBA
> Director of Application Development
> Time America, Inc.
> ma...@timeamerica.com | www.timeamerica.com

> -Original Message-
> From: Илья Сербис [mailto:iser...@shtrih-m.ru] 
> Sent: Thursday, May 13, 2010 8:08 AM
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Adding reference to WiX project doesn't lead
> to copy referenced project's files


> Hello!

> I have WiX project included into Visual Studio solution along with
> other projects written on C#. In order to automate build process I
> need to get output files from some of C# projects, and add them to
> msi file.

> Usually when you add reference from one C# project to another,
> msbuild copy files from output dir of referenced project to the
> referrer's folder. But this rule is not applicable to WiX projects.

> I've made reference from WiX project to one of C# projects but haven't
> got any files from C# project in WiX output directory. Is it possible
> to make standard references (which allow files to be copied)?

> After getting all of the files in WiX output dir I'm going to filter
> out some of them (in pre-build event) and then automatically generate
> the list by the heat utility (also in pre-build event). It's simpler
> than filter out Components through the xsl transformation from wxs
> file generated by the heat.

> Another issue I faced with: usually when I add file to C# project as a
> link I can set "Copy if newer" option for this file in it's properties
> window. But in case of WiX projects there is no such option. May be I
> missed something?



> --

> ___
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users

> --

> ___
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users

> !DSPAM:3680870,4bec458b710861490510030!



--

___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Adding reference to WiX project doesn't lead to copy referenced project's files

2010-05-13 Thread Matt Johnson
Hi,

That is not entirely correct.  When you reference one project to another, 
msbuild doesn't copy anything.  It simply makes the reference project available 
to the target project. It is up to the target project itself to decide what 
it's going to do with that reference.  In the case of a c# project, it decides 
to copy files according to the "Copy Local" property of the reference, and the 
"Build Action" and "Copy to Output Directory" properties of each file.

Votive, (the Wix Visual Studio plugin), does other things with project 
reference. First, it makes the project available through variables such as 
$(var.ProjectName.Whatever) (see the wix docs on "project references"). Second, 
if you are using Wix 3.5 with VS2010, you get options for "Harvest" 
(true/false) and "ProjectOutputGroups" that go along with Harvest=True.

Those two harvesting properties will control how Heat builds .wxs files from 
your project.  Those end up in the obj subdirectory, and then passed in to 
Candle during the build process.

Whether files from your c# project make their way to your final output 
directory in Wix depends on a whole lot of things. For example, you may be 
using a compressed package where all your files go inside cabinets and those 
get embedded in the msi. There may be different Media elements defined in your 
package, or you may be using those files in some other way inside your wix 
project.

Hopefully you now understand why you don't get files in your output directory 
just from making the project reference.  That would go against all of the 
reasons that you build a wix project in the first place.


Now - if what you really want to know is how to get files from your referenced 
c# package into your output directory without them being embedded in an msi, 
it's fairly simple:
1) Set Compressed="no" on your package
2) Reference your project and use the harvesting properties.

The only downside to this is that ALL your harvested files will end up outside 
of the msi.  To work around that, you'll need Compressed="yes" on the files 
that you want inside your msi. The problem now is that there's no opportunity 
to modify the .wxs generated by the harvesting on the project reference, to get 
that attribute on the files harvested there.  IMHO, this is a major oversight 
in Votive.  We need the ability to provide transforms on the project reference.

There is a workaround for this problem - You have to turn OFF harvesting on 
your reference and do it the old wix 3.0 way.  Basically, open up your wixproj 
file and add an item group like such:


  
Content;Binaries
MyWebTransform.xslt
MyWebApp.csproj
  


Don't delete the reference though, it is still useful for the 
$(var.ProjectName.Whatever) variables. Just set Harvest=False.

Now you can create an xslt for heat to use to add the Compressed="yes" 
attribute to your File elements in the generated wxs.

I know this is an ugly workaround.  I hope someone that works on Votive is 
listening.  This is a great example of why we need to be able to specify 
transforms as a property on the project reference.



Matt Johnson MCPD, MCTS, MCSD, MCDBA
Director of Application Development
Time America, Inc.
ma...@timeamerica.com | www.timeamerica.com

-Original Message-
From: Илья Сербис [mailto:iser...@shtrih-m.ru] 
Sent: Thursday, May 13, 2010 8:08 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Adding reference to WiX project doesn't lead to copy 
referenced project's files


Hello!

I have WiX project included into Visual Studio solution along with
other projects written on C#. In order to automate build process I
need to get output files from some of C# projects, and add them to
.msi file.

Usually when you add reference from one C# project to another,
msbuild copy files from output dir of referenced project to the
referrer's folder. But this rule is not applicable to WiX projects.

I've made reference from WiX project to one of C# projects but haven't
got any files from C# project in WiX output directory. Is it possible
to make standard references (which allow files to be copied)?

After getting all of the files in WiX output dir I'm going to filter
out some of them (in pre-build event) and then automatically generate
the list by the heat utility (also in pre-build event). It's simpler
than filter out Components through the xsl transformation from wxs
file generated by the heat.

Another issue I faced with: usually when I add file to C# project as a
link I can set "Copy if newer" option for this file in it's properties
window. But in case of WiX projects there is no such option. May be I
missed something?



--